Ciphers are used for encryption and decryption. Stream ciphers are cryptographic algorithms that are based on processing individual plaintext digits. Stream ciphers use transformations for generating ciphertext that are time-varying.
Ideologically stream ciphers are based on Shannon's result related to special class of ciphers that usually are referred to as Vernon's ciphers. A Vernon cipher is a cipher where the size of a key is of the size of a message and an encryption procedure is based on xor-ing bits of a message and the corresponding bits of a key. In other words, if m1 m2 . . . ms is a binary representation of a message and k1 k2 . . . ks is a binary representation of a key, then the binary representation of a ciphertext c1 c2 . . . cs is computed byci=mi⊕ki,where i=1, . . . , s. Shannon proved that if a sequence of bits k1 k2 . . . ks is completely random and independent on a message, then a ciphertext c1 c2 . . . cs cannot be broken.
Thus, the biggest problem of any stream cipher scheme is to construct a mechanism for generating a keystream of a required size, (that is, the size of a message) based on a key of relatively small size and a message itself.
There are a lot of stream ciphers that differ from each other by a method of realization of the keystream generators. One of the main approaches for constructing a keystream generator is based on various feedback shift registers (FSR). There are linear (LFSR) and non-linear feedback shift registers. The keystream generators that are based on LFSR and non-linear FSR are quite fast and convenient for crypto analysis.
Practically all keystream generators may be presented by a finite state machine. It is a well known fact that any finite state machine at certain time repeats its internal states. This means that all generated keystreams have a period, that is, in any keystream it is possible to find repeated substreams. Presence of repeated parts of a keystream allows applying various cryptographic attacks on a cipher. The larger period of a keystream the more secure is a cipher where the keystream is applied. One of the main ways of increasing the period of a keystream is to combine the outputs of a few keystream generators into a resulting keystream. For instance, the keystreams generated by a few linear FSR can be combined into one keystream using a Boolean function. However this may lead to applying the correlation attack on stream ciphers. The correlation attack analyzes and “catches” correlation between outputs of one “weak” keystream generator, for example, with short period and an output of the final block that combines keystreams from the individual generators into one keystream. The correlation attack on non-linear generators was developed by Siegenthaler. Meier and Siegenthaler presented fast correlation attacks that are more efficient than the attack proposed by Siegenthaler.
Thus, there is a need in building new constructions of stream ciphers, where, firstly, new methods of generating the keystreams are applied and, secondly, any analysis of influence of any keystream on the final output becoming difficult for an adversary.